/*
 * Powered By xTOOLs
 * Dev by tao.li8@pactera.com
 * Copyright ©2009-2018 pactera.com All rights reserved.
 * Generated at Aug 5, 2020 4:09:17 PM
 */

package com.pactera.jep.service.yapin.estate.model;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.pactera.jep.entity.PO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import org.hibernate.validator.constraints.Length;

import javax.persistence.*;
import javax.validation.constraints.Digits;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 居住用房地产表实体类
 * @Author YourName
 * @Date Aug 5, 2020 4:09:17 PM
 */
@ApiModel(value = "Estate" , description = "居住用房地产表")
@Entity
@Table(name = "bs_col_realestate")
public class Estate implements PO {

    @ApiModelProperty("编号")
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Length(max = 64, message = "编号长度最多64位")
    @Column(name = "ID_")
    private String id;

    @ApiModelProperty("省城区")
    @Length(max = 64, message = "省城区长度最多64位")
    @Column(name = "AREA_")
    private String area;

    @ApiModelProperty("建筑物用途")
    @Length(max = 20, message = "建筑物用途长度最多20位")
    @Column(name = "HOUSE_PURPOSE_")
    private String housePurpose;

    @ApiModelProperty("小区名称")
    @Length(max = 100, message = "小区名称长度最多100位")
    @Column(name = "HOUSING_EST_NM_")
    private String housingEstNm;

    @ApiModelProperty("镇/乡/村/街道")
    @Length(max = 100, message = "镇/乡/村/街道长度最多100位")
    @Column(name = "STREET_ADDRESS_")
    private String streetAddress;

    @ApiModelProperty("详细地址 后端拼接单元号+楼栋号+房号+所在楼层")
    @Length(max = 256, message = "详细地址 后端拼接单元号+楼栋号+房号+所在楼层长度最多256位")
    @Column(name = "DETAIL_ADS_")
    private String detailAds;

    @ApiModelProperty("单元号")
    @Length(max = 40, message = "单元号长度最多40位")
    @Column(name = "UNIT_NO_")
    private String unitNo;

    @ApiModelProperty("楼栋号")
    @Length(max = 40, message = "楼栋号长度最多40位")
    @Column(name = "BUILDING_NO_")
    private String buildingNo;

    @ApiModelProperty("房号")
    @Length(max = 40, message = "房号长度最多40位")
    @Column(name = "DOOR_NO_")
    private String doorNo;

    @ApiModelProperty("所在楼层")
    @Digits(integer = 10, fraction = 0, message = "所在楼层不能超过10位")
    @Column(name = "LOCATE_FLOOR_")
    private Integer locateFloor;

    @ApiModelProperty("房屋类型：01 存量房, 02 预售商品房")
    @Length(max = 2, message = "房屋类型：01 存量房, 02 预售商品房长度最多2位")
    @Column(name = "HOUSE_TYPE_")
    private String houseType;

    @ApiModelProperty("是否有物业：N 否, Y 是")
    @Length(max = 1, message = "是否有物业：N 否, Y 是长度最多1位")
    @Column(name = "HAS_ESTATE_MNGMNT_")
    private String hasEstateMngmnt;

    @ApiModelProperty("是否成品房：N 否, Y 是")
    @Length(max = 1, message = "是否成品房：N 否, Y 是长度最多1位")
    @Column(name = "IS_EXISTED_HOUSE_")
    private String isExistedHouse;

    @ApiModelProperty("竣工日期 建成年份取对应yyyy")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @Column(name = "FINISH_DT_")
    private Date finishDt;

    @ApiModelProperty("是否一手房：N 否, Y 是")
    @Length(max = 1, message = "是否一手房：N 否, Y 是长度最多1位")
    @Column(name = "IS_FIRST_HAND_")
    private String isFirstHand;

    @ApiModelProperty("原购置价格（元）")
    @Digits(integer = 18, fraction = 2, message = "原购置价格（元）不能超过20位")
    @Column(name = "HOUSING_UNT_")
    private BigDecimal housingUnt;

    @ApiModelProperty("建筑面积（平方米）")
    @Digits(integer = 8, fraction = 8, message = "建筑面积（平方米）不能超过16位")
    @Column(name = "STRCTURE_SQU_")
    private BigDecimal strctureSqu;

    @ApiModelProperty("套内建筑面积（平方米）")
    @Digits(integer = 8, fraction = 8, message = "套内建筑面积（平方米）不能超过16位")
    @Column(name = "IN_WRAP_FLOOR_SPACE_")
    private BigDecimal inWrapFloorSpace;

    @ApiModelProperty("土地使用证号")
    @Length(max = 100, message = "土地使用证号长度最多100位")
    @Column(name = "LAND_USE_NO_")
    private String landUseNo;

    @ApiModelProperty("土地使用权类型：01 划拨, 02 出租, 03 出让, 04 转让")
    @Length(max = 2, message = "土地使用权类型：01 划拨, 02 出租, 03 出让, 04 转让长度最多2位")
    @Column(name = "LAND_TENURE_TP_CD_")
    private String landTenureTpCd;

    @ApiModelProperty("地类用途：1 居住用地, 2 工业用地, 3 商业用地, 4 综合用地")
    @Length(max = 1, message = "地类用途：1 居住用地, 2 工业用地, 3 商业用地, 4 综合用地长度最多1位")
    @Column(name = "LAND_UTIL_PURPOSE_")
    private String landUtilPurpose;

    @ApiModelProperty("土地使用权终止日期 土地使用年限+建成年代")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @Column(name = "LAND_TENURE_EXP_DT_")
    private Date landTenureExpDt;

    @ApiModelProperty("土地使用面积（平方米）")
    @Digits(integer = 8, fraction = 8, message = "土地使用面积（平方米）不能超过16位")
    @Column(name = "LAND_SQU_")
    private BigDecimal landSqu;

    @ApiModelProperty("土地使用年限（年）")
    @Digits(integer = 10, fraction = 0, message = "土地使用年限（年）不能超过10位")
    @Column(name = "LAND_USE_LIM_")
    private Integer landUseLim;

    @ApiModelProperty("土地剩余使用年限（年）")
    @Digits(integer = 10, fraction = 0, message = "土地剩余使用年限（年）不能超过10位")
    @Column(name = "REMAIN_LANDUSE_YR_")
    private Integer remainLanduseYr;

    @ApiModelProperty("房产商名称")
    @Length(max = 100, message = "房产商名称长度最多100位")
    @Column(name = "LAND_AGENT_NM_")
    private String landAgentNm;

    @ApiModelProperty("是否学区房：N 否, Y 是")
    @Length(max = 1, message = "是否学区房：N 否, Y 是长度最多1位")
    @Column(name = "IS_SCHOOL_NEARBY_")
    private String isSchoolNearby;

    @ApiModelProperty("泊车条件：01 有停车场, 02 无停车场, 99 其他")
    @Length(max = 2, message = "泊车条件：01 有停车场, 02 无停车场, 99 其他长度最多2位")
    @Column(name = "PARKING_COND_CD_")
    private String parkingCondCd;

    @ApiModelProperty("公共服务配套：01 配套齐全, 02 配套一般, 03 配套较差, 99 其他")
    @Length(max = 2, message = "公共服务配套：01 配套齐全, 02 配套一般, 03 配套较差, 99 其他长度最多2位")
    @Column(name = "PUBSRV_MATCH_CD_")
    private String pubsrvMatchCd;

    @ApiModelProperty("基础设施：01 七通, 02 五通, 03 三通, 99 其他")
    @Length(max = 2, message = "基础设施：01 七通, 02 五通, 03 三通, 99 其他长度最多2位")
    @Column(name = "BASIC_FACILITY_CD_")
    private String basicFacilityCd;

    @ApiModelProperty("交通条件：01 周边公交线路>=10条, 02 周边公交线路<10条且>=5条, 03 周边公交线路<5条且>=2条, 04 周边公交线路<2条, 99 其他")
    @Length(max = 2, message = "交通条件：01 周边公交线路>=10条, 02 周边公交线路<10条且>=5条, 03 周边公交线路<5条且>=2条, 04 周边公交线路<2条, 99 其他长度最多2位")
    @Column(name = "TRAFFIC_COND_CD_")
    private String trafficCondCd;

    @ApiModelProperty("居住社区成熟度：01 密集, 02 一般, 03 较差, 99 其他")
    @Length(max = 2, message = "居住社区成熟度：01 密集, 02 一般, 03 较差, 99 其他长度最多2位")
    @Column(name = "HOUSING_DENSE_CD_")
    private String housingDenseCd;

    @ApiModelProperty("物业公司")
    @Length(max = 80, message = "物业公司长度最多80位")
    @Column(name = "PROPERTY_COMPANY_")
    private String propertyCompany;

    @ApiModelProperty("物业费（元/平方米*月）")
    @Digits(integer = 18, fraction = 2, message = "物业费（元/平方米*月）不能超过20位")
    @Column(name = "PROPERTY_PRICE_")
    private BigDecimal propertyPrice;

    @ApiModelProperty("小区绿化率")
    @Digits(integer = 8, fraction = 8, message = "小区绿化率不能超过16位")
    @Column(name = "AFFOREST_RT_")
    private BigDecimal afforestRt;

    @ApiModelProperty("建筑物总层数")
    @Digits(integer = 10, fraction = 0, message = "建筑物总层数不能超过10位")
    @Column(name = "ABOVE_FLOOR_AMOUNT_")
    private Integer aboveFloorAmount;

    @ApiModelProperty("建筑类别：01 高层, 02 小高层, 03 多层, 99 其他")
    @Length(max = 2, message = "建筑类别：01 高层, 02 小高层, 03 多层, 99 其他长度最多2位")
    @Column(name = "STRUCTURE_TP_CD_")
    private String structureTpCd;

    @ApiModelProperty("结构类型：01 钢混, 02 钢和钢混, 03 砖木结构, 04 混合结构, 05 钢结构, 99 其他结构")
    @Length(max = 2, message = "结构类型：01 钢混, 02 钢和钢混, 03 砖木结构, 04 混合结构, 05 钢结构, 99 其他结构长度最多2位")
    @Column(name = "BUILD_STRUCTURE_CD_")
    private String buildStructureCd;

    @ApiModelProperty("层高：01 挑高, 02 普通")
    @Length(max = 1, message = "层高：01 挑高, 02 普通长度最多1位")
    @Column(name = "FLOOR_HEIGHT_DESC_CD_")
    private String floorHeightDescCd;

    @ApiModelProperty("临街状况：01 好, 02 较好, 03 一般, 04 较差, 05 差")
    @Length(max = 2, message = "临街状况：01 好, 02 较好, 03 一般, 04 较差, 05 差长度最多2位")
    @Column(name = "ROAD_CONDITION_CD_")
    private String roadConditionCd;

    @ApiModelProperty("朝向")
    @Length(max = 2, message = "朝向长度最多2位")
    @Column(name = "TOWARD_DIRECT_CD_")
    private String towardDirectCd;

    @ApiModelProperty("装修程度")
    @Length(max = 2, message = "装修程度长度最多2位")
    @Column(name = "DEGREE_OF_DECORATION_")
    private String degreeOfDecoration;

    @ApiModelProperty("是否有电梯：N 否, Y 是")
    @Length(max = 1, message = "是否有电梯：N 否, Y 是长度最多1位")
    @Column(name = "ELEVATOR_FLG_")
    private String elevatorFlg;

    @ApiModelProperty("是否租赁或已许可他人使用：N 否, Y 是")
    @Length(max = 1, message = "是否租赁或已许可他人使用：N 否, Y 是长度最多1位")
    @Column(name = "IS_AUTHORIZED_")
    private String isAuthorized;

    @ApiModelProperty("租户ID")
    @Length(max = 64, message = "租户ID长度最多64位")
    @Column(name = "TENANT_ID_")
    private String tenantId;

    @ApiModelProperty("创建ID")
    @Length(max = 64, message = "创建ID长度最多64位")
    @Column(name = "CREATED_BY_ID_")
    private String createdById;

    @ApiModelProperty("创建姓名")
    @Length(max = 256, message = "创建姓名长度最多256位")
    @Column(name = "CREATED_BY_NAME_")
    private String createdByName;

    @ApiModelProperty("创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @Column(name = "CREATED_TIME_")
    private Date createdTime;

    @ApiModelProperty("删除标志")
    @Length(max = 1, message = "删除标志长度最多1位")
    @Column(name = "DELFLAG_")
    private String delflag;

    @ApiModelProperty("显示顺序")
    @Digits(integer = 10, fraction = 0, message = "显示顺序不能超过10位")
    @Column(name = "DISPLAY_ORDER_")
    private Integer displayOrder;

    @ApiModelProperty("修改ID")
    @Length(max = 64, message = "修改ID长度最多64位")
    @Column(name = "MODIFIED_BY_ID_")
    private String modifiedById;

    @ApiModelProperty("修改姓名")
    @Length(max = 256, message = "修改姓名长度最多256位")
    @Column(name = "MODIFIED_BY_NAME_")
    private String modifiedByName;

    @ApiModelProperty("修改时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @Column(name = "MODIFIED_TIME_")
    private Date modifiedTime;

    @ApiModelProperty("版本")
    @Digits(integer = 10, fraction = 0, message = "版本不能超过10位")
    @Column(name = "VERSION_")
    private Integer version;

    public String getId(){
        return id;
    }

    public void setId(String id){
        this.id = id;
    }
    public String getArea(){
        return area;
    }

    public void setArea(String area){
        this.area = area;
    }
    public String getHousePurpose(){
        return housePurpose;
    }

    public void setHousePurpose(String housePurpose){
        this.housePurpose = housePurpose;
    }
    public String getHousingEstNm(){
        return housingEstNm;
    }

    public void setHousingEstNm(String housingEstNm){
        this.housingEstNm = housingEstNm;
    }
    public String getStreetAddress(){
        return streetAddress;
    }

    public void setStreetAddress(String streetAddress){
        this.streetAddress = streetAddress;
    }
    public String getDetailAds(){
        return detailAds;
    }

    public void setDetailAds(String detailAds){
        this.detailAds = detailAds;
    }
    public String getUnitNo(){
        return unitNo;
    }

    public void setUnitNo(String unitNo){
        this.unitNo = unitNo;
    }
    public String getBuildingNo(){
        return buildingNo;
    }

    public void setBuildingNo(String buildingNo){
        this.buildingNo = buildingNo;
    }
    public String getDoorNo(){
        return doorNo;
    }

    public void setDoorNo(String doorNo){
        this.doorNo = doorNo;
    }
    public Integer getLocateFloor(){
        return locateFloor;
    }

    public void setLocateFloor(Integer locateFloor){
        this.locateFloor = locateFloor;
    }
    public String getHouseType(){
        return houseType;
    }

    public void setHouseType(String houseType){
        this.houseType = houseType;
    }
    public String getHasEstateMngmnt(){
        return hasEstateMngmnt;
    }

    public void setHasEstateMngmnt(String hasEstateMngmnt){
        this.hasEstateMngmnt = hasEstateMngmnt;
    }
    public String getIsExistedHouse(){
        return isExistedHouse;
    }

    public void setIsExistedHouse(String isExistedHouse){
        this.isExistedHouse = isExistedHouse;
    }
    public Date getFinishDt(){
        return finishDt;
    }

    public void setFinishDt(Date finishDt){
        this.finishDt = finishDt;
    }
    public String getIsFirstHand(){
        return isFirstHand;
    }

    public void setIsFirstHand(String isFirstHand){
        this.isFirstHand = isFirstHand;
    }
    public BigDecimal getHousingUnt(){
        return housingUnt;
    }

    public void setHousingUnt(BigDecimal housingUnt){
        this.housingUnt = housingUnt;
    }
    public BigDecimal getStrctureSqu(){
        return strctureSqu;
    }

    public void setStrctureSqu(BigDecimal strctureSqu){
        this.strctureSqu = strctureSqu;
    }
    public BigDecimal getInWrapFloorSpace(){
        return inWrapFloorSpace;
    }

    public void setInWrapFloorSpace(BigDecimal inWrapFloorSpace){
        this.inWrapFloorSpace = inWrapFloorSpace;
    }
    public String getLandUseNo(){
        return landUseNo;
    }

    public void setLandUseNo(String landUseNo){
        this.landUseNo = landUseNo;
    }
    public String getLandTenureTpCd(){
        return landTenureTpCd;
    }

    public void setLandTenureTpCd(String landTenureTpCd){
        this.landTenureTpCd = landTenureTpCd;
    }
    public String getLandUtilPurpose(){
        return landUtilPurpose;
    }

    public void setLandUtilPurpose(String landUtilPurpose){
        this.landUtilPurpose = landUtilPurpose;
    }
    public Date getLandTenureExpDt(){
        return landTenureExpDt;
    }

    public void setLandTenureExpDt(Date landTenureExpDt){
        this.landTenureExpDt = landTenureExpDt;
    }
    public BigDecimal getLandSqu(){
        return landSqu;
    }

    public void setLandSqu(BigDecimal landSqu){
        this.landSqu = landSqu;
    }
    public Integer getLandUseLim(){
        return landUseLim;
    }

    public void setLandUseLim(Integer landUseLim){
        this.landUseLim = landUseLim;
    }
    public Integer getRemainLanduseYr(){
        return remainLanduseYr;
    }

    public void setRemainLanduseYr(Integer remainLanduseYr){
        this.remainLanduseYr = remainLanduseYr;
    }
    public String getLandAgentNm(){
        return landAgentNm;
    }

    public void setLandAgentNm(String landAgentNm){
        this.landAgentNm = landAgentNm;
    }
    public String getIsSchoolNearby(){
        return isSchoolNearby;
    }

    public void setIsSchoolNearby(String isSchoolNearby){
        this.isSchoolNearby = isSchoolNearby;
    }
    public String getParkingCondCd(){
        return parkingCondCd;
    }

    public void setParkingCondCd(String parkingCondCd){
        this.parkingCondCd = parkingCondCd;
    }
    public String getPubsrvMatchCd(){
        return pubsrvMatchCd;
    }

    public void setPubsrvMatchCd(String pubsrvMatchCd){
        this.pubsrvMatchCd = pubsrvMatchCd;
    }
    public String getBasicFacilityCd(){
        return basicFacilityCd;
    }

    public void setBasicFacilityCd(String basicFacilityCd){
        this.basicFacilityCd = basicFacilityCd;
    }
    public String getTrafficCondCd(){
        return trafficCondCd;
    }

    public void setTrafficCondCd(String trafficCondCd){
        this.trafficCondCd = trafficCondCd;
    }
    public String getHousingDenseCd(){
        return housingDenseCd;
    }

    public void setHousingDenseCd(String housingDenseCd){
        this.housingDenseCd = housingDenseCd;
    }
    public String getPropertyCompany(){
        return propertyCompany;
    }

    public void setPropertyCompany(String propertyCompany){
        this.propertyCompany = propertyCompany;
    }
    public BigDecimal getPropertyPrice(){
        return propertyPrice;
    }

    public void setPropertyPrice(BigDecimal propertyPrice){
        this.propertyPrice = propertyPrice;
    }
    public BigDecimal getAfforestRt(){
        return afforestRt;
    }

    public void setAfforestRt(BigDecimal afforestRt){
        this.afforestRt = afforestRt;
    }
    public Integer getAboveFloorAmount(){
        return aboveFloorAmount;
    }

    public void setAboveFloorAmount(Integer aboveFloorAmount){
        this.aboveFloorAmount = aboveFloorAmount;
    }
    public String getStructureTpCd(){
        return structureTpCd;
    }

    public void setStructureTpCd(String structureTpCd){
        this.structureTpCd = structureTpCd;
    }
    public String getBuildStructureCd(){
        return buildStructureCd;
    }

    public void setBuildStructureCd(String buildStructureCd){
        this.buildStructureCd = buildStructureCd;
    }
    public String getFloorHeightDescCd(){
        return floorHeightDescCd;
    }

    public void setFloorHeightDescCd(String floorHeightDescCd){
        this.floorHeightDescCd = floorHeightDescCd;
    }
    public String getRoadConditionCd(){
        return roadConditionCd;
    }

    public void setRoadConditionCd(String roadConditionCd){
        this.roadConditionCd = roadConditionCd;
    }
    public String getTowardDirectCd(){
        return towardDirectCd;
    }

    public void setTowardDirectCd(String towardDirectCd){
        this.towardDirectCd = towardDirectCd;
    }
    public String getDegreeOfDecoration(){
        return degreeOfDecoration;
    }

    public void setDegreeOfDecoration(String degreeOfDecoration){
        this.degreeOfDecoration = degreeOfDecoration;
    }
    public String getElevatorFlg(){
        return elevatorFlg;
    }

    public void setElevatorFlg(String elevatorFlg){
        this.elevatorFlg = elevatorFlg;
    }
    public String getIsAuthorized(){
        return isAuthorized;
    }

    public void setIsAuthorized(String isAuthorized){
        this.isAuthorized = isAuthorized;
    }
    public String getTenantId(){
        return tenantId;
    }

    public void setTenantId(String tenantId){
        this.tenantId = tenantId;
    }
    public String getCreatedById(){
        return createdById;
    }

    public void setCreatedById(String createdById){
        this.createdById = createdById;
    }
    public String getCreatedByName(){
        return createdByName;
    }

    public void setCreatedByName(String createdByName){
        this.createdByName = createdByName;
    }
    public Date getCreatedTime(){
        return createdTime;
    }

    public void setCreatedTime(Date createdTime){
        this.createdTime = createdTime;
    }
    public String getDelflag(){
        return delflag;
    }

    public void setDelflag(String delflag){
        this.delflag = delflag;
    }
    public Integer getDisplayOrder(){
        return displayOrder;
    }

    public void setDisplayOrder(Integer displayOrder){
        this.displayOrder = displayOrder;
    }
    public String getModifiedById(){
        return modifiedById;
    }

    public void setModifiedById(String modifiedById){
        this.modifiedById = modifiedById;
    }
    public String getModifiedByName(){
        return modifiedByName;
    }

    public void setModifiedByName(String modifiedByName){
        this.modifiedByName = modifiedByName;
    }
    public Date getModifiedTime(){
        return modifiedTime;
    }

    public void setModifiedTime(Date modifiedTime){
        this.modifiedTime = modifiedTime;
    }
    public Integer getVersion(){
        return version;
    }

    public void setVersion(Integer version){
        this.version = version;
    }
}

